15 panic(
"evtchn %u out of evtchn_pending[] range\n", port);
51 part =
min(part, (
unsigned int)len);
95 part =
min(part, (
unsigned int)len);
static bool test_and_clear_bit(unsigned int bit, volatile void *addr)
static int hypercall_evtchn_send(evtchn_port_t port)
static long hypercall_poll(evtchn_port_t port)
Low level bit operations.
void panic(const char *fmt,...)
unsigned long evtchn_pending[sizeof(unsigned long) *8]
char rsp[XENBUS_RING_SIZE]
char req[XENBUS_RING_SIZE]
void init_xenbus(xenbus_interface_t *ring, evtchn_port_t port)
static xenbus_interface_t * xb_ring
static void xenbus_write(const void *data, size_t len)
static void xenbus_read(void *data, size_t len)
static char payload[XENSTORE_PAYLOAD_MAX+1]
static evtchn_port_t xb_port
const char * xenstore_read(const char *path)
Issue a XS_READ operation for key, waiting synchronously for the reply.
int xenstore_init(void)
Initialise XTF ready for xenstore communication.
static uint32_t mask_xenbus_idx(uint32_t idx)
#define XENSTORE_PAYLOAD_MAX