Branch data Line data Source code
1 : : /* 2 : : * Copyright (c) 2019 Oticon A/S 3 : : * 4 : : * SPDX-License-Identifier: Apache-2.0 5 : : */ 6 : : 7 : : #include <zephyr/arch/posix/posix_soc_if.h> 8 : : #include "board_irq.h" 9 : : 10 : : #ifdef CONFIG_IRQ_OFFLOAD 11 : : #include <zephyr/irq_offload.h> 12 : : 13 : : void arch_irq_offload(irq_offload_routine_t routine, const void *parameter) 14 : : { 15 : : posix_irq_offload(routine, parameter); 16 : : } 17 : : #endif 18 : : 19 : 1 : void arch_irq_enable(unsigned int irq) 20 : : { 21 : 1 : posix_irq_enable(irq); 22 : 1 : } 23 : : 24 : 0 : void arch_irq_disable(unsigned int irq) 25 : : { 26 : 0 : posix_irq_disable(irq); 27 : 0 : } 28 : : 29 : 0 : int arch_irq_is_enabled(unsigned int irq) 30 : : { 31 : 0 : return posix_irq_is_enabled(irq); 32 : : } 33 : : 34 : : #ifdef CONFIG_DYNAMIC_INTERRUPTS 35 : : /** 36 : : * Configure a dynamic interrupt. 37 : : * 38 : : * Use this instead of IRQ_CONNECT() if arguments cannot be known at build time. 39 : : * 40 : : * @param irq IRQ line number 41 : : * @param priority Interrupt priority 42 : : * @param routine Interrupt service routine 43 : : * @param parameter ISR parameter 44 : : * @param flags Arch-specific IRQ configuration flags 45 : : * 46 : : * @return The vector assigned to this interrupt 47 : : */ 48 : : int arch_irq_connect_dynamic(unsigned int irq, unsigned int priority, 49 : : void (*routine)(const void *parameter), 50 : : const void *parameter, uint32_t flags) 51 : : { 52 : : posix_isr_declare(irq, (int)flags, routine, parameter); 53 : : posix_irq_priority_set(irq, priority, flags); 54 : : return irq; 55 : : } 56 : : #endif /* CONFIG_DYNAMIC_INTERRUPTS */