1/* 2 * Copyright 2017, Data61 3 * Commonwealth Scientific and Industrial Research Organisation (CSIRO) 4 * ABN 41 687 119 230. 5 * 6 * This software may be distributed and modified according to the terms of 7 * the BSD 2-Clause license. Note that NO WARRANTY is provided. 8 * See "LICENSE_BSD2.txt" for details. 9 * 10 * @TAG(DATA61_BSD) 11 */ 12#include <autoconf.h> 13#include <sel4platsupport/gen_config.h> 14#include <sel4platsupport/device.h> 15#include <sel4platsupport/platsupport.h> 16#include <utils/util.h> 17#include <platsupport/irq.h> 18 19int sel4platsupport_arch_copy_irq_cap(arch_simple_t *arch_simple, ps_irq_t *irq, cspacepath_t *dest) 20{ 21 switch (irq->type) { 22 case PS_MSI: 23 return arch_simple_get_msi(arch_simple, *dest, irq->msi.pci_bus, irq->msi.pci_dev, 24 irq->msi.pci_func, irq->msi.handle, irq->msi.vector); 25 case PS_IOAPIC: 26 return arch_simple_get_ioapic(arch_simple, *dest, irq->ioapic.ioapic, irq->ioapic.pin, 27 irq->ioapic.level, irq->ioapic.polarity, 28 irq->ioapic.vector); 29 default: 30 ZF_LOGE("unknown irq type"); 31 return -1; 32 } 33} 34