Changeset View
Changeset View
Standalone View
Standalone View
sys/xen/xen_intr.c
Show First 20 Lines • Show All 197 Lines • ▼ Show 20 Lines | |||||
/** | /** | ||||
* Allocate and register a per-cpu Xen upcall interrupt counter. | * Allocate and register a per-cpu Xen upcall interrupt counter. | ||||
* | * | ||||
* \param cpu The cpu for which to register this interrupt count. | * \param cpu The cpu for which to register this interrupt count. | ||||
*/ | */ | ||||
static void | static void | ||||
xen_intr_intrcnt_add(u_int cpu) | xen_intr_intrcnt_add(u_int cpu) | ||||
{ | { | ||||
char buf[MAXCOMLEN + 1]; | |||||
struct xen_intr_pcpu_data *pcpu; | struct xen_intr_pcpu_data *pcpu; | ||||
pcpu = DPCPU_ID_PTR(cpu, xen_intr_pcpu); | pcpu = DPCPU_ID_PTR(cpu, xen_intr_pcpu); | ||||
if (pcpu->evtchn_intrcnt != NULL) | if (pcpu->evtchn_intrcnt != NULL) | ||||
return; | return; | ||||
snprintf(buf, sizeof(buf), "cpu%d:xen", cpu); | xen_arch_intr_intrcnt_init(cpu, &pcpu->evtchn_intrcnt); | ||||
intrcnt_add(buf, &pcpu->evtchn_intrcnt); | |||||
} | } | ||||
/** | /** | ||||
* Attempt to free an active Xen interrupt source object. | * Attempt to free an active Xen interrupt source object. | ||||
* | * | ||||
* \param isrc The interrupt source object to release. | * \param isrc The interrupt source object to release. | ||||
* | * | ||||
* \returns EBUSY if the source is still in use, otherwise 0. | * \returns EBUSY if the source is still in use, otherwise 0. | ||||
▲ Show 20 Lines • Show All 971 Lines • Show Last 20 Lines |