29 panic(
"Too many console callbacks\n");
40 while ( (s < len) && ((prod - cons) <
sizeof(
pv_ring->
out)) )
67 while ( (s < len) && (0 < (prod - cons)) )
102 }
while ( written < len );
112 panic(
"evtchn %u out of evtchn_pending[] range\n", port);
121 static char buf[2048];
127 if ( rc > (
int)
sizeof(buf) )
128 panic(
"vprintk() buffer overflow\n");
static bool test_and_clear_bit(unsigned int bit, volatile void *addr)
#define STORE_RELEASE(p, v)
void vprintk(const char *fmt, va_list args)
void printk(const char *fmt,...)
static evtchn_port_t pv_evtchn
static void pv_console_write(const char *buf, size_t len)
void register_console_callback(cons_output_cb fn)
static size_t pv_console_write_some(const char *buf, size_t len)
static cons_output_cb output_fns[3]
static xencons_interface_t * pv_ring
size_t pv_console_read_some(char *buf, size_t len)
static unsigned int nr_cons_cb
void init_pv_console(xencons_interface_t *ring, evtchn_port_t port)
static int hypercall_evtchn_send(evtchn_port_t port)
static long hypercall_poll(evtchn_port_t port)
static void hypercall_yield(void)
Low level bit operations.
void panic(const char *fmt,...)
__builtin_va_list va_list
unsigned long evtchn_pending[sizeof(unsigned long) *8]
Common declarations for all tests.
int vsnprintf_internal(char *buf, size_t size, const char *fmt, va_list args, unsigned int caller_flags)
void(* cons_output_cb)(const char *buf, size_t len)