Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/xen/xenstore/xenstore.c
Show First 20 Lines • Show All 1,124 Lines • ▼ Show 20 Lines | if (xs.evtchn == 0) { | ||||
xs.evtchn = alloc_unbound.port; | xs.evtchn = alloc_unbound.port; | ||||
/* Allocate memory for the xs shared ring */ | /* Allocate memory for the xs shared ring */ | ||||
xen_store = malloc(PAGE_SIZE, M_XENSTORE, M_WAITOK | M_ZERO); | xen_store = malloc(PAGE_SIZE, M_XENSTORE, M_WAITOK | M_ZERO); | ||||
xs.gpfn = atop(pmap_kextract((vm_offset_t)xen_store)); | xs.gpfn = atop(pmap_kextract((vm_offset_t)xen_store)); | ||||
} else { | } else { | ||||
xs.gpfn = xen_get_xenstore_mfn(); | xs.gpfn = xen_get_xenstore_mfn(); | ||||
xen_store = pmap_mapdev_attr(ptoa(xs.gpfn), PAGE_SIZE, | xen_store = pmap_mapdev_attr(ptoa(xs.gpfn), PAGE_SIZE, | ||||
PAT_WRITE_BACK); | VM_MEMATTR_XEN); | ||||
xs.initialized = true; | xs.initialized = true; | ||||
} | } | ||||
TAILQ_INIT(&xs.reply_list); | TAILQ_INIT(&xs.reply_list); | ||||
TAILQ_INIT(&xs.watch_events); | TAILQ_INIT(&xs.watch_events); | ||||
mtx_init(&xs.ring_lock, "ring lock", NULL, MTX_DEF); | mtx_init(&xs.ring_lock, "ring lock", NULL, MTX_DEF); | ||||
mtx_init(&xs.reply_lock, "reply lock", NULL, MTX_DEF); | mtx_init(&xs.reply_lock, "reply lock", NULL, MTX_DEF); | ||||
▲ Show 20 Lines • Show All 523 Lines • Show Last 20 Lines |