unsigned long northbridge_write_acpi_tables(struct device *const dev, unsigned long current, struct acpi_rsdp *const rsdp) { const u32 capid0_a = pci_read_config32(dev, 0xe4); if (capid0_a & (1 << 23)) return current; printk(BIOS_DEBUG, "ACPI: * DMAR\n"); acpi_dmar_t *const dmar = (acpi_dmar_t *)current; acpi_create_dmar(dmar, DMAR_INTR_REMAP, acpi_fill_dmar); current += dmar->header.length; current = acpi_align_current(current); acpi_add_table(rsdp, dmar); current = acpi_align_current(current); printk(BIOS_DEBUG, "current = %lx\n", current); return current; }
unsigned long northbridge_write_acpi_tables(device_t device, unsigned long start, struct acpi_rsdp *rsdp) { unsigned long current; acpi_dmar_t *dmar; current = start; printk(BIOS_DEBUG, "ACPI: * DMAR\n"); dmar = (acpi_dmar_t *) current; acpi_create_dmar(dmar, 0, acpi_fill_dmar); current += dmar->header.length; ALIGN_CURRENT; acpi_add_table(rsdp, dmar); ALIGN_CURRENT; printk(BIOS_DEBUG, "current = %lx\n", current); return current; }