int device_id = -1;
enum xenbus_state {
- XenbusStateUnknown = 0,
- XenbusStateInitialising = 1,
- XenbusStateInitWait = 2,
- XenbusStateInitialised = 3,
- XenbusStateConnected = 4,
- XenbusStateClosing = 5,
- XenbusStateClosed = 6,
- XenbusStateReconfiguring = 7,
- XenbusStateReconfigured = 8
+ XenbusStateUnknown = 0,
+ XenbusStateInitialising = 1,
+ XenbusStateInitWait = 2,
+ XenbusStateInitialised = 3,
+ XenbusStateConnected = 4,
+ XenbusStateClosing = 5,
+ XenbusStateClosed = 6,
+ XenbusStateReconfiguring = 7,
+ XenbusStateReconfigured = 8
};
static const char* xenbus_names[] = {
static int process_render(struct userdata *u) {
pa_assert(u);
-
if (u->memchunk.length <= 0)
pa_sink_render(u->sink, ioring->usable_buffer_space, &u->memchunk);
-
pa_assert(u->memchunk.length > 0);
xc_evtchn_notify(xce, xen_evtchn_port);
void *p;
p = pa_memblock_acquire(u->memchunk.memblock);
- /* xen: write data to ring buffer & notify backend */
+ /* xen: write data to ring buffer & notify backend */
l = ring_write(ioring, (uint8_t*)p + u->memchunk.index, u->memchunk.length);
pa_memblock_release(u->memchunk.memblock);
pa_thread_mq_install(&u->thread_mq);
- for(;;){
+ for(;;) {
struct pollfd *pollfd;
int ret;
}
-
static int alloc_gref(struct ioctl_gntalloc_alloc_gref *gref_, void **addr) {
int alloc_fd, dev_fd, rv;
return xs_read(xsh, 0, keybuf, &len);
}
-
static int publish_spec(pa_sample_spec *sample_spec) {
/* Publish spec and set state to XenbusStateInitWait*/
int ret;
return ret;
}
-
static int read_backend_default_spec(pa_sample_spec *sample_spec) {
/* Read spec from backend */
char *out;
int xs_fd;
struct timeval tv;
- fd_set watch_fdset;
+ fd_set watch_fdset;
int start, now;
backend_state = STATE_UNDEFINED;
/*XXX: hardcoded */
seconds = 10;
- do {
- tv.tv_usec = 0;
- tv.tv_sec = (start + seconds) - now;
- FD_ZERO(&watch_fdset);
- FD_SET(xs_fd, &watch_fdset);
+ do {
+ tv.tv_usec = 0;
+ tv.tv_sec = (start + seconds) - now;
+ FD_ZERO(&watch_fdset);
+ FD_SET(xs_fd, &watch_fdset);
ret=select(xs_fd + 1, &watch_fdset, NULL, NULL, &tv);
if (ret==-1)
return -1;
else if (ret) {
- /* Read the watch to drain the buffer */
- vec = xs_read_watch(xsh, &len);
+ /* Read the watch to drain the buffer */
+ vec = xs_read_watch(xsh, &len);
buf = xs_read(xsh, XBT_NULL, vec[0], &len);
if (buf == 0) {
free(buf);
free(vec);
- }
- /* else: timeout */
- } while (backend_state == STATE_UNDEFINED && \
+ }
+ /* else: timeout */
+ } while (backend_state == STATE_UNDEFINED && \
(now = time(NULL)) < start + seconds);
return backend_state;