printk(" Xen warning: dom0 kernel broken ELF: %s\n",
elf_check_broken(&elf));
- iommu_dom0_init(hardware_domain);
+ iommu_hwdom_init(hardware_domain);
return 0;
out:
.data = data
};
- if ( is_hardware_domain(current->domain) && dom0_pit_access(&ioreq) )
+ if ( is_hardware_domain(current->domain) && hwdom_pit_access(&ioreq) )
{
/* nothing to do */;
}
return 0;
}
-int dom0_pit_access(struct ioreq *ioreq)
+int hwdom_pit_access(struct ioreq *ioreq)
{
/* Is Xen using Channel 2? Then disallow direct dom0 access. */
if ( using_pit )
curr->async_exception_mask = curr->async_exception_state(trap).old_mask;
}
-static void nmi_dom0_report(unsigned int reason_idx)
+static void nmi_hwdom_report(unsigned int reason_idx)
{
struct domain *d = hardware_domain;
switch ( opt_nmi[0] )
{
case 'd': /* 'dom0' */
- nmi_dom0_report(_XEN_NMIREASON_pci_serr);
+ nmi_hwdom_report(_XEN_NMIREASON_pci_serr);
case 'i': /* 'ignore' */
/* Would like to print a diagnostic here but can't call printk()
from NMI context -- raise a softirq instead. */
switch ( opt_nmi[0] )
{
case 'd': /* 'dom0' */
- nmi_dom0_report(_XEN_NMIREASON_io_error);
+ nmi_hwdom_report(_XEN_NMIREASON_io_error);
case 'i': /* 'ignore' */
break;
default: /* 'fatal' */
switch ( opt_nmi[0] )
{
case 'd': /* 'dom0' */
- nmi_dom0_report(_XEN_NMIREASON_unknown);
+ nmi_hwdom_report(_XEN_NMIREASON_unknown);
case 'i': /* 'ignore' */
break;
default: /* 'fatal' */
reason = d->shutdown_code;
if ( is_hardware_domain(d) )
- dom0_shutdown(reason);
+ hwdom_shutdown(reason);
if ( d->is_shutting_down )
{
.desc = "dump registers"
};
-static DECLARE_TASKLET(dump_dom0_tasklet, NULL, 0);
+static DECLARE_TASKLET(dump_hwdom_tasklet, NULL, 0);
-static void dump_dom0_action(unsigned long arg)
+static void dump_hwdom_action(unsigned long arg)
{
struct vcpu *v = (void *)arg;
break;
if ( softirq_pending(smp_processor_id()) )
{
- dump_dom0_tasklet.data = (unsigned long)v;
- tasklet_schedule_on_cpu(&dump_dom0_tasklet, v->processor);
+ dump_hwdom_tasklet.data = (unsigned long)v;
+ tasklet_schedule_on_cpu(&dump_hwdom_tasklet, v->processor);
break;
}
}
}
-static void dump_dom0_registers(unsigned char key)
+static void dump_hwdom_registers(unsigned char key)
{
struct vcpu *v;
{
if ( alt_key_handling && softirq_pending(smp_processor_id()) )
{
- tasklet_kill(&dump_dom0_tasklet);
- tasklet_init(&dump_dom0_tasklet, dump_dom0_action,
+ tasklet_kill(&dump_hwdom_tasklet);
+ tasklet_init(&dump_hwdom_tasklet, dump_hwdom_action,
(unsigned long)v);
- tasklet_schedule_on_cpu(&dump_dom0_tasklet, v->processor);
+ tasklet_schedule_on_cpu(&dump_hwdom_tasklet, v->processor);
return;
}
vcpu_show_execution_state(v);
}
}
-static struct keyhandler dump_dom0_registers_keyhandler = {
+static struct keyhandler dump_hwdom_registers_keyhandler = {
.diagnostic = 1,
- .u.fn = dump_dom0_registers,
+ .u.fn = dump_hwdom_registers,
.desc = "dump Dom0 registers"
};
register_keyhandler('r', &dump_runq_keyhandler);
register_keyhandler('R', &reboot_machine_keyhandler);
register_keyhandler('t', &read_clocks_keyhandler);
- register_keyhandler('0', &dump_dom0_registers_keyhandler);
+ register_keyhandler('0', &dump_hwdom_registers_keyhandler);
register_keyhandler('%', &do_debug_key_keyhandler);
register_keyhandler('*', &run_all_keyhandlers_keyhandler);
}
}
-void dom0_shutdown(u8 reason)
+void hwdom_shutdown(u8 reason)
{
switch ( reason )
{
}
}
-static int __hwdom_init amd_iommu_setup_dom0_device(
+static int __hwdom_init amd_iommu_setup_hwdom_device(
u8 devfn, struct pci_dev *pdev)
{
int bdf = PCI_BDF2(pdev->bus, pdev->devfn);
return 0;
}
-static void __hwdom_init amd_iommu_dom0_init(struct domain *d)
+static void __hwdom_init amd_iommu_hwdom_init(struct domain *d)
{
unsigned long i;
}
}
- setup_dom0_pci_devices(d, amd_iommu_setup_dom0_device);
+ setup_hwdom_pci_devices(d, amd_iommu_setup_hwdom_device);
}
void amd_iommu_disable_domain_device(struct domain *domain,
const struct iommu_ops amd_iommu_ops = {
.init = amd_iommu_domain_init,
- .dom0_init = amd_iommu_dom0_init,
+ .hwdom_init = amd_iommu_hwdom_init,
.add_device = amd_iommu_add_device,
.remove_device = amd_iommu_remove_device,
.assign_device = amd_iommu_assign_device,
return hd->platform_ops->init(d);
}
-static void __hwdom_init check_dom0_pvh_reqs(struct domain *d)
+static void __hwdom_init check_hwdom_pvh_reqs(struct domain *d)
{
if ( !iommu_enabled )
panic("Presently, iommu must be enabled for pvh dom0\n");
iommu_dom0_strict = 1;
}
-void __hwdom_init iommu_dom0_init(struct domain *d)
+void __hwdom_init iommu_hwdom_init(struct domain *d)
{
struct hvm_iommu *hd = domain_hvm_iommu(d);
if ( is_pvh_domain(d) )
- check_dom0_pvh_reqs(d);
+ check_hwdom_pvh_reqs(d);
if ( !iommu_enabled )
return;
}
}
- return hd->platform_ops->dom0_init(d);
+ return hd->platform_ops->hwdom_init(d);
}
int iommu_add_device(struct pci_dev *pdev)
return ret;
}
-struct setup_dom0 {
+struct setup_hwdom {
struct domain *d;
int (*handler)(u8 devfn, struct pci_dev *);
};
-static void setup_one_dom0_device(const struct setup_dom0 *ctxt,
+static void setup_one_hwdom_device(const struct setup_hwdom *ctxt,
struct pci_dev *pdev)
{
u8 devfn = pdev->devfn;
PCI_SLOT(devfn) == PCI_SLOT(pdev->devfn) );
}
-static int __hwdom_init _setup_dom0_pci_devices(struct pci_seg *pseg, void *arg)
+static int __hwdom_init _setup_hwdom_pci_devices(struct pci_seg *pseg, void *arg)
{
- struct setup_dom0 *ctxt = arg;
+ struct setup_hwdom *ctxt = arg;
int bus, devfn;
for ( bus = 0; bus < 256; bus++ )
{
pdev->domain = ctxt->d;
list_add(&pdev->domain_list, &ctxt->d->arch.pdev_list);
- setup_one_dom0_device(ctxt, pdev);
+ setup_one_hwdom_device(ctxt, pdev);
}
else if ( pdev->domain == dom_xen )
{
pdev->domain = ctxt->d;
- setup_one_dom0_device(ctxt, pdev);
+ setup_one_hwdom_device(ctxt, pdev);
pdev->domain = dom_xen;
}
else if ( pdev->domain != ctxt->d )
return 0;
}
-void __hwdom_init setup_dom0_pci_devices(
+void __hwdom_init setup_hwdom_pci_devices(
struct domain *d, int (*handler)(u8 devfn, struct pci_dev *))
{
- struct setup_dom0 ctxt = { .d = d, .handler = handler };
+ struct setup_hwdom ctxt = { .d = d, .handler = handler };
spin_lock(&pcidevs_lock);
- pci_segments_iterate(_setup_dom0_pci_devices, &ctxt);
+ pci_segments_iterate(_setup_hwdom_pci_devices, &ctxt);
spin_unlock(&pcidevs_lock);
}
static struct tasklet vtd_fault_tasklet;
-static int setup_dom0_device(u8 devfn, struct pci_dev *);
-static void setup_dom0_rmrr(struct domain *d);
+static int setup_hwdom_device(u8 devfn, struct pci_dev *);
+static void setup_hwdom_rmrr(struct domain *d);
static int domain_iommu_domid(struct domain *d,
struct iommu *iommu)
return 0;
}
-static void __hwdom_init intel_iommu_dom0_init(struct domain *d)
+static void __hwdom_init intel_iommu_hwdom_init(struct domain *d)
{
struct acpi_drhd_unit *drhd;
if ( !iommu_passthrough && !need_iommu(d) )
{
/* Set up 1:1 page table for dom0 */
- iommu_set_dom0_mapping(d);
+ iommu_set_hwdom_mapping(d);
}
- setup_dom0_pci_devices(d, setup_dom0_device);
- setup_dom0_rmrr(d);
+ setup_hwdom_pci_devices(d, setup_hwdom_device);
+ setup_hwdom_rmrr(d);
iommu_flush_all();
return domain_context_unmap(pdev->domain, devfn, pdev);
}
-static int __hwdom_init setup_dom0_device(u8 devfn, struct pci_dev *pdev)
+static int __hwdom_init setup_hwdom_device(u8 devfn, struct pci_dev *pdev)
{
int err;
return 0;
}
-static void __hwdom_init setup_dom0_rmrr(struct domain *d)
+static void __hwdom_init setup_hwdom_rmrr(struct domain *d)
{
struct acpi_rmrr_unit *rmrr;
u16 bdf;
const struct iommu_ops intel_iommu_ops = {
.init = intel_iommu_domain_init,
- .dom0_init = intel_iommu_dom0_init,
+ .hwdom_init = intel_iommu_hwdom_init,
.add_device = intel_iommu_add_device,
.enable_device = intel_iommu_enable_device,
.remove_device = intel_iommu_remove_device,
spin_unlock(&d->event_lock);
}
-void __hwdom_init iommu_set_dom0_mapping(struct domain *d)
+void __hwdom_init iommu_set_hwdom_mapping(struct domain *d)
{
unsigned long i, j, tmp, top;
void init_percpu_time(void);
struct ioreq;
-int dom0_pit_access(struct ioreq *ioreq);
+int hwdom_pit_access(struct ioreq *ioreq);
int cpu_frequency_change(u64 freq);
int iommu_enable_device(struct pci_dev *pdev);
int iommu_remove_device(struct pci_dev *pdev);
int iommu_domain_init(struct domain *d);
-void iommu_dom0_init(struct domain *d);
+void iommu_hwdom_init(struct domain *d);
void iommu_domain_destroy(struct domain *d);
int deassign_device(struct domain *d, u16 seg, u8 bus, u8 devfn);
struct iommu_ops {
int (*init)(struct domain *d);
- void (*dom0_init)(struct domain *d);
+ void (*hwdom_init)(struct domain *d);
int (*add_device)(u8 devfn, struct pci_dev *);
int (*enable_device)(struct pci_dev *pdev);
int (*remove_device)(u8 devfn, struct pci_dev *);
void iommu_resume(void);
void iommu_crash_shutdown(void);
-void iommu_set_dom0_mapping(struct domain *d);
+void iommu_set_hwdom_mapping(struct domain *d);
void iommu_share_p2m_table(struct domain *d);
int iommu_do_domctl(struct xen_domctl *, struct domain *d,
struct pci_dev *pci_lock_domain_pdev(
struct domain *, int seg, int bus, int devfn);
-void setup_dom0_pci_devices(struct domain *,
+void setup_hwdom_pci_devices(struct domain *,
int (*)(u8 devfn, struct pci_dev *));
void pci_release_devices(struct domain *d);
int pci_add_segment(u16 seg);
/* opt_noreboot: If true, machine will need manual reset on error. */
extern bool_t opt_noreboot;
-void noreturn dom0_shutdown(u8 reason);
+void noreturn hwdom_shutdown(u8 reason);
void noreturn machine_restart(unsigned int delay_millisecs);
void noreturn machine_halt(void);