xen: Port Xen bus driver from mini-os
Make required updates to run on u-boot and strip test code. Signed-off-by: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
This commit is contained in:
committed by
Tom Rini
parent
e87dfb0526
commit
60e49ff1f8
@@ -8,7 +8,7 @@
|
||||
/**
|
||||
* xen_init() - Xen initialization
|
||||
*
|
||||
* Map Xen memory pages, initialize event handler.
|
||||
* Map Xen memory pages, initialize event handler and xenbus.
|
||||
*/
|
||||
void xen_init(void);
|
||||
|
||||
|
||||
116
include/xen/xenbus.h
Normal file
116
include/xen/xenbus.h
Normal file
@@ -0,0 +1,116 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
#ifndef XENBUS_H__
|
||||
#define XENBUS_H__
|
||||
|
||||
#include <xen/interface/xen.h>
|
||||
#include <xen/interface/io/xenbus.h>
|
||||
|
||||
typedef unsigned long xenbus_transaction_t;
|
||||
#define XBT_NIL ((xenbus_transaction_t)0)
|
||||
|
||||
extern u32 xenbus_evtchn;
|
||||
|
||||
/* Initialize the XenBus system. */
|
||||
void init_xenbus(void);
|
||||
/* Finalize the XenBus system. */
|
||||
void fini_xenbus(void);
|
||||
|
||||
/**
|
||||
* xenbus_read() - 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);
|
||||
|
||||
char *xenbus_wait_for_state_change(const char *path, XenbusState *state);
|
||||
char *xenbus_switch_state(xenbus_transaction_t xbt, const char *path,
|
||||
XenbusState state);
|
||||
|
||||
/**
|
||||
* xenbus_write() - 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);
|
||||
|
||||
/**
|
||||
* xenbus_rm() - 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);
|
||||
|
||||
/**
|
||||
* xenbus_ls() - 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);
|
||||
|
||||
/**
|
||||
* xenbus_get_perms() - 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);
|
||||
|
||||
/**
|
||||
* xenbus_set_perms() - 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);
|
||||
|
||||
/**
|
||||
* xenbus_transaction_start() - 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);
|
||||
|
||||
/**
|
||||
* xenbus_transaction_end() - 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 if the transaction should be retried.
|
||||
*/
|
||||
char *xenbus_transaction_end(xenbus_transaction_t xbt, int abort,
|
||||
int *retry);
|
||||
|
||||
/**
|
||||
* xenbus_read_integer() - Read path and parse it as an integer.
|
||||
*
|
||||
* Returns -1 on error.
|
||||
*/
|
||||
int xenbus_read_integer(const char *path);
|
||||
|
||||
/**
|
||||
* xenbus_read_uuid() - Read path and parse it as 16 byte uuid.
|
||||
*
|
||||
* Returns 1 if read and parsing were successful, 0 if not
|
||||
*/
|
||||
int xenbus_read_uuid(const char *path, unsigned char uuid[16]);
|
||||
|
||||
/**
|
||||
* xenbus_printf() - Contraction of snprintf and xenbus_write(path/node).
|
||||
*/
|
||||
char *xenbus_printf(xenbus_transaction_t xbt,
|
||||
const char *node, const char *path,
|
||||
const char *fmt, ...)
|
||||
__attribute__((__format__(printf, 4, 5)));
|
||||
|
||||
/**
|
||||
* xenbus_get_self_id() - Utility function to figure out our domain id
|
||||
*/
|
||||
domid_t xenbus_get_self_id(void);
|
||||
|
||||
#endif /* XENBUS_H__ */
|
||||
Reference in New Issue
Block a user