/* * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. * * SGI UV IRQ functions * * Copyright (C) 2008 Silicon Graphics, Inc. All rights reserved.
*/
/* * Re-target the irq to the specified CPU and enable the specified MMR located * on the specified blade to allow the sending of MSIs to the specified CPU.
*/ staticint uv_domain_activate(struct irq_domain *domain, struct irq_data *irq_data, bool reserve)
{
uv_program_mmr(irqd_cfg(irq_data), irq_data->chip_data); return 0;
}
/* * Disable the specified MMR located on the specified blade so that MSIs are * longer allowed to be sent.
*/ staticvoid uv_domain_deactivate(struct irq_domain *domain, struct irq_data *irq_data)
{ unsignedlong mmr_value; struct uv_IO_APIC_route_entry *entry;
/* * Set up a mapping of an available irq and vector, and enable the specified * MMR that defines the MSI that is to be sent to the specified CPU when an * interrupt is raised.
*/ int uv_setup_irq(char *irq_name, int cpu, int mmr_blade, unsignedlong mmr_offset, int limit)
{ struct irq_alloc_info info; struct irq_domain *domain = uv_get_irq_domain();
/* * Tear down a mapping of an irq and vector, and disable the specified MMR that * defined the MSI that was to be sent to the specified CPU when an interrupt * was raised. * * Set mmr_blade and mmr_offset to what was passed in on uv_setup_irq().
*/ void uv_teardown_irq(unsignedint irq)
{
irq_domain_free_irqs(irq, 1);
}
EXPORT_SYMBOL_GPL(uv_teardown_irq);
Messung V0.5
¤ Dauer der Verarbeitung: 0.15 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.